<?php

/**
 * agendapersonalagendadetalle actions.
 *
 * @package    kernel
 * @subpackage agendapersonalagendadetalle
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 2288 2006-10-02 15:22:13Z fabien $
 */
class agendapersonalagendadetalleActions extends autoagendapersonalagendadetalleActions
{
	
	public function executeMostrarAgenda()
	{
		$this->agenda_personal_agenda_detalle = new AgendaPersonalAgendaDetalle(); 
		$this->labels = $this->getLabels();
	}
	
	
	public function executeMostrarAgendaSemana()
	{
		//$this->datos = false;
	 	$agendado = $this->getRequestParameter('agendado');
	 	$fecha = $this->getRequestParameter('fecha');
	 	if (!$fecha)
	 		$fecha=date('Y-m-d');
	 	$dt = new sfDate($fecha);
	 	$tmp_fecha_ini = $dt->firstDayOfWeek()->dump();
	 	$tmp_fecha_fin = $dt->finalDayOfWeek()->dump();

		
		$c = new Criteria();
		$crit0 = $c->getNewCriterion(AgendaPersonalAgendaDetallePeer::PERSONAL_AGENDA_ID, $agendado);
		$crit1 = $c->getNewCriterion(AgendaPersonalAgendaDetallePeer::FECHA, $tmp_fecha_fin,Criteria::LESS_EQUAL);
		$crit2 = $c->getNewCriterion(AgendaPersonalAgendaDetallePeer::FECHA, $tmp_fecha_ini,Criteria::GREATER_EQUAL);
		
		// Perform AND at level 0 ($crit0 $crit1 $crit2 )
		$crit0->addAnd($crit1);
		$crit0->addAnd($crit2);
		
		// Remember to change the peer class here for the correct one in your model
		$c->add($crit0);
		$datos = AgendaPersonalAgendaDetallePeer::doSelect($c);
						
		$this->sm = new ScheduleMaker(1100, 700, 0, 150, 10);
		$this->sm->setBeginEndTime("6:00", "22:00");
		$this->sm->makeClock();
		//$event = new Event("Almuerzo", "12345", "12:00", "13:30", "Cafeteria");
		//$this->sm->addEvent($event);
		$t=0;
		foreach ($datos as $dato)
		{	
			$t++;
			$hora_inicio = substr($dato->getHoraInicio(),0,5);
			$hora_final = substr($dato->getHoraFinal(),0,5);
			$dt1 = new sfDate($dato->getFecha());
			$tmp_dia = date('w',$dt1->get())+1;
			$tercero= $dato->getKernelTercero()->getNombreCompleto();
			//$event = new Event($t, "1", "14:00", "17:30", "En la oficina");
			$event = new Event($t, $tmp_dia, $hora_inicio, $hora_final, $tercero);
			$this->sm->addEvent($event);
		}
		//$event = new Event("Dedicado", "135", "10:00", "11:30", "Tarde");
		//$this->sm->addEvent($event);
	
		//$this->labels = $this->getLabels();
	}
		
	protected function updateAgendaPersonalAgendaDetalleFromRequest()
	{
	    $agenda_personal_agenda_detalle = $this->getRequestParameter('agenda_personal_agenda_detalle');
	    if (isset($agenda_personal_agenda_detalle['id']))
	    {
	      $this->agenda_personal_agenda_detalle->setId($agenda_personal_agenda_detalle['id']);
	    }
	    if (isset($agenda_personal_agenda_detalle['fecha']))
	    {
	      if ($agenda_personal_agenda_detalle['fecha'])
	      {
	        try
	        {
	          $dateFormat = new sfDateFormat($this->getUser()->getCulture());
	                              if (!is_array($agenda_personal_agenda_detalle['fecha']))
	          {
	            $value = $dateFormat->format($agenda_personal_agenda_detalle['fecha'], 'i', $dateFormat->getInputPattern('d'));
	          }
	          else
	          {
	            $value_array = $agenda_personal_agenda_detalle['fecha'];
	            $value = $value_array['year'].'-'.$value_array['month'].'-'.$value_array['day'].(isset($value_array['hour']) ? ' '.$value_array['hour'].':'.$value_array['minute'].(isset($value_array['second']) ? ':'.$value_array['second'] : '') : '');
	          }
	          $this->agenda_personal_agenda_detalle->setFecha($value);
	        }
	        catch (sfException $e)
	        {
	          // not a date
	        }
	      }
	      else
	      {
	        $this->agenda_personal_agenda_detalle->setFecha(null);
	      }
	    }
	    if (isset($agenda_personal_agenda_detalle['tercero_id']))
	    {
	    $this->agenda_personal_agenda_detalle->setTerceroId($agenda_personal_agenda_detalle['tercero_id'] ? $agenda_personal_agenda_detalle['tercero_id'] : null);
	    }
	    if (isset($agenda_personal_agenda_detalle['personal_agenda_id']))
	    {
	    $this->agenda_personal_agenda_detalle->setPersonalAgendaId($agenda_personal_agenda_detalle['personal_agenda_id'] ? $agenda_personal_agenda_detalle['personal_agenda_id'] : null);
	    }
	    if (isset($agenda_personal_agenda_detalle['hora_inicio']))
	    {
	      $this->agenda_personal_agenda_detalle->setHoraInicio(implode(':',$agenda_personal_agenda_detalle['hora_inicio']).':00');
	    }
	    if (isset($agenda_personal_agenda_detalle['hora_final']))
	    {
	      $this->agenda_personal_agenda_detalle->setHoraFinal(implode(':',$agenda_personal_agenda_detalle['hora_final']).':00');
		}
	}	
}

